//九黎qq1906507927
//第一行都是积木c=require("./c.js")
//调用函数时，请在函数名前加积木c
//程序对大小写敏感

var 积木c = (function() {

  
    function 通知() {
        log("通知");
        importClass(android.app.Notification);
        importClass(android.graphics.BitmapFactory);
        importClass(android.content.Context);
        importClass(android.os.Build);
        importClass("android.app.PendingIntent");
    
        //第一步：实例化通知栏构造器Notification.Builder：
        var builder = new Notification.Builder(context);
        //第二步：获取状态通知栏管理：
        var mNotifyMgr = context.getSystemService(context.NOTIFICATION_SERVICE);
        //第三步 获取图标
        var iconName = "ic_cloud_circle_black_48dp";
        var icon = getResourceID(iconName, "drawable");
        //第四步 获取channelId
        var channelId = java.lang.String.valueOf(123456); // 至少6位数
        //第五步：对Builder进行配置：
        builder
          .setContentTitle("My notification") //标题
          .setContentText("Hello World!") // 详细内容
          .setTicker("New message") //第一次推送，角标旁边显示的内容
          .setSmallIcon(icon) //设置小图标
          .setLargeIcon(android.graphics.BitmapFactory.decodeResource(context.getResources(), icon))
          .setChannelId(channelId)
          .setWhen(java.lang.System.currentTimeMillis())
          .setDefaults(Notification.DEFAULT_ALL) //打开呼吸灯，声音，震动，触发系统默认行为
          .setVisibility(Notification.VISIBILITY_PRIVATE)
          .setPriority(Notification.PRIORITY_DEFAULT) //设置该通知优先级
          .setCategory(Notification.CATEGORY_MESSAGE); //设置通知类别
        //第六步：发送通知请求：
        var notify = builder.build(); //得到一个Notification对象
        var buiderID = 1; // 同一个buiderID会覆盖, 如果不同,就会有多个通知
        mNotifyMgr.notify(buiderID, notify); //发送通知请求
    
        function getResourceID(name, defType) {
          //获取资源文件ID
          //参数
          //defType 类名 如drawable id string等
          //name 资源名
          var resource = context.getResources();
          return resource.getIdentifier(name, defType, context.getPackageName());
        }
      }
      function base64(str) {
        return java.lang.String(android.util.Base64.decode(java.lang.String(str).getBytes(), 0));
    }
   
    function 滑动(x1, y1, x2, y2,time){
        if(device.sdkInt<24){
            Swipe(x1, y1, x2, y2,time)
        }else{
            swipe(x1, y1, x2, y2,time)
        }
    }
    function 点击(x,y){
        if(device.sdkInt<24){
            Tap(x,y)
        }else{
            click(x,y)
        }
    }
    function home(){
        if(device.sdkInt<24){
            Home()
        }else{
           home()
        }
    }
    function back(){
        if(device.sdkInt<24){
            Back()
        }else{
           back()
        }
    }
function 点击控件(ui) {
        if (ui.exists()) {
            var a = ui.findOnce();
            if (a) {
                var b = a.bounds();
                if (b) {
                    click(b.centerX(), b.centerY());
                    return true;
                }
            }
    
        }
        return false;
    }    
    function 写配置(文件名, 键, 值) {
        const storage = storages.create(文件名);
        storage.put(键, 值);
    }
    function 读配置(文件名, 键, 默认值) {
        const storage = storages.create(文件名);
        if (storage.contains(键)) {
            return storage.get(键, 默认值);
        };
        写配置(文件名, 键, 默认值);
        return 默认值;
    }
    function 到文本(数值) {
        return 数值 + ""
    }
    
    function 到整数(文本) {
        return 文本 * 1
    }
    
    function 随机数(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min
    }
    //log(随机数(1,5))
    
    
    function 子文本替换(原始文本, 欲被替换的文本, 用作替换的文本) {
        return 原始文本.replace(eval("/" + 欲被替换的文本 + "/g"), 用作替换的文本)
    }
    log(子文本替换("1234567890", "123", "qwe"))
    function 取文本中间(str, firstStr, secondStr) 
    //字符串,开头,结尾
    {
        if (firstStr == "") { str = "**" + str; firstStr = "**" }
        if (secondStr == "") { str = str + "**"; secondStr = "**" }
        if (str == "" || str == null || str == undefined) {
            return "";
        }
        if (str.indexOf(firstStr) < 0) {
            return "";
        }
        var subFirstStr = str.substring(str.indexOf(firstStr) + firstStr.length, str.length);
        var subSecondStr = subFirstStr.substring(0, subFirstStr.indexOf(secondStr));
        return subSecondStr;}
 

function isRoot() {
    var r = shell("ls /system/bin", true).result.toString()
    if (r.length > 50) {
        return true
    } else {
        return false
    }
}

function 检查网络() {
    importClass(android.net.ConnectivityManager);
    var mConnectivityManager = context.getSystemService(context.CONNECTIVITY_SERVICE);
    netInfo = mConnectivityManager.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isAvailable()) {
        /////////////网络连接
        var name = netInfo.getTypeName();
        if (netInfo.getType() == ConnectivityManager.TYPE_WIFI) {
            /////WiFi网络
            return "WIFI"
        } else if (netInfo.getType() == ConnectivityManager.TYPE_ETHERNET) {
            /////有线网络
            return "有线"

        } else if (netInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
            /////////3g网络
            return "移动"

        }
        else {
            return "未知"
        }
    } else {
        ////////网络断开
        return "断开"
    }
}

var 积木c = {};
//以下是功能支持列表

积木c.通知=通知;
积木c.检查网络=检查网络;
积木c.isRoot=isRoot;
积木c.子文本替换=子文本替换;
积木c.随机数=随机数;
积木c.到整数=到整数;
积木c.到文本=到文本;
积木c.读配置=读配置;
积木c.写配置=写配置;
积木c.点击控件=点击控件;
积木c.back=back;
积木c.点击=点击;
积木c.滑动=滑动;
积木c.home=home;

return 积木c;
})();
module.exports = 积木c;
